翻訳と辞書
Words near each other
・ Loop recording
・ Loop representation in gauge theories and quantum gravity
・ Loop Retail Historic District
・ Loop rock
・ Loop scheduling
・ Loop Service (Portland Streetcar)
・ Loop space
・ Loop splitting
・ Loop start
・ Loop subdivision surface
・ Loop the Loop (Coney Island)
・ Loop the Loop (Olentangy Park)
・ Loop the Loop (Young's Million Dollar Pier)
・ Loop theorem
・ Loop tiling
Loop unrolling
・ Loop unswitching
・ Loop v. Litchfield
・ Loop variant
・ Loop, Germany
・ Loop, Texas
・ Loop, West Virginia
・ Loop-erased random walk
・ Loop-invariant code motion
・ Loop-mediated isothermal amplification
・ Loop-O-Plane
・ Loop-switch sequence
・ Loop-the-Loop (disambiguation)
・ Loop-the-Loop (song)
・ Loopallu Festival


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Loop unrolling : ウィキペディア英語版
Loop unrolling

Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size, which is an approach known as the space-time tradeoff. The transformation can be undertaken manually by the programmer or by an optimizing compiler.
The goal of loop unwinding is to increase a program's speed by reducing (or eliminating) instructions that control the loop, such as pointer arithmetic and "end of loop" tests on each iteration; reducing branch penalties; as well as "hiding latencies, in particular, the delay in reading data from memory". To eliminate this overhead, loops can be re-written as a repeated sequence of similar independent statements.
Loop unrolling is also part of certain formal verification techniques, in particular bounded model checking.〔(Model Checking Using SMT and Theory of Lists )〕
==Advantages==
The overhead in "tight" loops often consists of instructions to increment a pointer or index to the next element in an array (pointer arithmetic), as well as "end of loop" tests. If an optimizing compiler or assembler is able to pre-calculate offsets to each ''individually referenced'' array variable, these can be built into the machine code instructions directly, therefore requiring no additional arithmetic operations at run time (note that in the example given below this is not the case).
* Significant gains can be realized if the reduction in executed instructions compensates for any performance reduction caused by any increase in the size of the program.
* branch penalty is minimised.
* If the statements in the loop are independent of each other (i.e. where statements that occur earlier in the loop do not affect statements that follow them), the statements can potentially be executed in parallel.
* Can be implemented dynamically if the number of array elements is unknown at compile time (as in Duff's device)
Optimizing compilers will sometimes perform the unrolling automatically, or upon request.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Loop unrolling」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.